草庐IT

TypeScript 条件语句

全部标签

javascript - 当满足特定条件时,如何防止 onbeforeunload 触发?

我有一个页面,我想确认用户是否想离开。我只有在满足特定条件时才需要确认,所以我写了这样的代码varback=false;back=//checkifuserpressedbackbuttonwindow.onbeforeunload=function(e){alert(back);//thisalertstrueif(back==true)returnfalse;//e.preventDefault;--thisdoesnotworktoo};但这行不通。我的意思是,当我单击后退按钮时,这个onbeforeunload仍然会触发,即使我返回false,我仍然会收到确认消息。可能有什么问

javascript - 我可以在 JavaScript switch 语句中检查不相等吗?

vart="TEST";switch(t){case!"TEST":/*你能用switch语句做到这一点吗? 最佳答案 你也可以这样做:varstr="TEST";switch(true){case(str!=="TEST"):alert("str!==TEST");break;case(str===null):alert("strisnull");break;default:alert("defaulttrigger");} 关于javascript-我可以在JavaScriptswi

javascript - 误报 "Lexical declarations require ECMAScript 6"和 "TypeScript 1.x feature. Current language is 1.4"错误消息

在将TypeScript更新到版本1.7(目前最新版本)后,我一直看到Resharper指出错误,例如在使用namespace、const和let,即使这个版本的TypeScript应该支持它们。例如:TypeScript1.x功能。当前语言是1.4和词法声明(let和const)需要ECMAScript6编译器目标。当前目标是ECMAScript5。 最佳答案 我的Resharper(10.0.1)版本似乎无法检测到TypeScript版本。要解决此问题,您可以手动指定版本。由于此版本的Resharper(发布时为最新版本)不支持

javascript - 为什么 TypeScript 会为类生成 IIFE?

这个问题在这里已经有了答案:UnderstandingJavascriptgeneratedbyTypescriptcompiler(2个答案)关闭5年前。查看此TypeScript代码:classGreeter{greet(){}}它围绕构造函数和所有原型(prototype)函数声明生成一个IIFE(立即调用函数表达式),例如:varGreeter=(function(){functionGreeter(){}Greeter.prototype.greet=function(){};returnGreeter;}());这里的优势是什么?每当我读到IIFE时,我都会看到很多关于定义

javascript - 如何在 Javascript 中模仿 SQL Coalesce 语句的功能

我想知道在javascript中是否有一种方法可以使逻辑类似于sql中的coalesce语句,它将以指定的顺序返回数据,如下所示:Selecttop1Coalesce(ColA,ColB,"NoDataFound")fromTableA;有没有一种优雅的方式来处理Javascript中的空值,就像上面语句中sql返回结果一样?我知道我可以在技术上有一个switch语句,但这将需要一些可能不必要的代码谢谢。 最佳答案 您可以使用OR。varsomeVar=null||value;varotherVar=null||variableTh

javascript - 使用对象字面量而不是 switch 语句

关于switch和if/else语句中的最佳实践有很多讨论和评论。我看到有人说我们都应该尽可能使用对象字面量而不是switch。所以我重现了这个案例和Iwenttroughalittleandsimpletest在开关之间:(function(test){varbar;switch(bar){case1:bar='red';break;case2:bar='blue';break;case3:bar='yellow';break;case4:bar='green';break;case5:bar='black';break;}returnbar;})(5);并通过对象字面量传递:(fu

javascript - 在 TypeScript 中使用 React.findDOMNode

我正在关注ReactTutorial并卡在如何使用React.findDOMNode上.这是我的代码:exportclassCommentFormextendsReact.Component{handleSubmit(e:React.FormEvent){e.preventDefault();console.log(React.findDOMNode(this.refs['author']));}render(){returnthis.handleSubmit(e)}>;}}调用console.log(React.findDOMNode(this.refs['author']));还我

javascript - define 未在 nodejs typescript 应用程序中定义

我正在使用typescript开发nodejs应用程序,我在其中编写了一个文件server.js作为休闲:importexpress=require('express');importmongoose=require('mongoose');letapp=express();app.set('port',process.env.PORT||3000);//Setportto3000ortheprovidedPORTvariable/***Startapp*/app.listen(app.get('port'),function(){console.log(`Applisteningon

javascript - 替代一百万个 IF 语句

我使用JavaScript从网页中提取名称并以某种方式将它们串在一起(可能与数组一起使用)。将所有姓名收集在一起后,我需要制作另一个字符串来提供姓名的所有电子邮件地址。电子邮件地址不在网页上,因此我必须以某种方式在我的脚本中列出所有可能的thisName=thisEmail。我正准备通过大量的if语句来解决这个问题,但我认为必须有一种更有效的方法。有什么建议吗?varx=getElementById("names");varname=x.InnerHTML;varemail;if(name=='Steve'){email=='steve462@gmail.com';}if(name==

javascript - 为什么 typescript 允许在声明变量之前使用它?

Typescript不会为以下代码给出编译器错误:varb=a+10;//Whynocompilationerrorherevara=10;alert(b.toString());我希望第一行是一个错误,因为我到现在为止还没有声明或初始化vara。如果我删除第二行,我会得到编译器错误。我知道它在JavaScript中有效,但我希望TypeScript给我编译错误或警告。 最佳答案 因为hoistingbehavior可能会令人困惑。你的代码实际上意味着。vara,bb=a+10a=10alert(b.toString())有正当理由